package fr.babos.core.utils 
{
	import flash.display.Stage;
	import flash.errors.IllegalOperationError;
	

	/**
	 * Stock une référence au stage.
	 * @author Pascal Achard
	 */
	public class StageReferenceUtils
	{
		// PROPERTIES
		// ----------------------------------------
		static private var _stage:Stage;
		
		
		// CONSTRUCTOR
		// ----------------------------------------
		public function StageReferenceUtils () 
		{
			throw new IllegalOperationError("Ne pas instancier directement la classe StageReference");
		}
		
		// METHODS
		// ----------------------------------------
		
		/**
		 * Définit la référence au stage.
		 * @param	pStage	Le stage.
		 */
		public static function setStage(pStage:Stage):void 
		{
			_stage = pStage;
		}
		
		/**
		 * Retourne la réf du stage.
		 * @return	Le stage.
		 */
		public static function getStage ():Stage 
		{
			if (!_stage)
				throw new Error("Impossible de récupérer le stage avant qu'il ai été définit");
			
			return _stage;
		}
	}
}